// 1566. 重复至少 K 次且长度为 M 的模式

// 思路：由于patten的长度为m，且需要重复k次，所以pattern起始位置应该在[0, n-m*k]之间
// 假设pattern起始位置为i，判断后续序列[i+m, i+m*k)是否满足条件，其实只需要判断arr[j] 与 arr[j - m]是否相同


#include <vector>
using namespace std;

class Solution 
{
public:
    bool containsPattern(vector<int>& arr, int m, int k) 
    {
        int n = arr.size();
        if(n < m * k) return false;

        for(int i = 0; i <= n - m * k; i++)
        {
            int j = 0;
            for(j = i + m; j < i + m * k; j++)
            {
                if(arr[j] != arr[j - m]) break;
            }
            if(j == i + m * k) return true;
        }
        return false;
    }
};